﻿using System;
using System.Collections.Generic;
using System.Linq;
using Sistema_Totem.Logica.Clases;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Sistema_Totem.Vista.Configuracion.Involucrados
{
    public partial class CrearInvolucrado : System.Web.UI.Page
    {
        
        List<Rol> listaRol = new List<Rol>();

        protected void Page_Load(object sender, EventArgs e)
        {
            //if (Session["tipo_usuario"].ToString() != "Analista")
            //{
            //    Response.Redirect("Login1.aspx");
            //}

            //if (Session["tipo_usuario"].ToString() != "Gerente")
            //{
            //    Response.Redirect("Login1.aspx");
            //}

            //if (Session["tipo_usuario"].ToString() != "Administrador")
            //{
            //    Response.Redirect("Login1.aspx");
            //}
            
            if (!IsPostBack)
            {
               
            }
            else
            {
                
            }
            this.CargarRolInvolucrado();
        }
        // Cargamos los posibles roles que va a tener un involucrado
        public void CargarRolInvolucrado()
        {
            Rol rol = new Rol();
            listaRol = rol.ListaRoles();
             
            foreach (Rol roles in listaRol)
            {
                if ((roles.TipoRol == "Cliente") || (roles.TipoRol == "cliente"))
                {
                    this.ComboRol.Items.Add(roles.Nombre);                
                }
            }
            Session["listaRoles"] = this.ComboRol;
        }
        // Metodo para Agregar un nuevo involucrado
        public void AgregarInvolucrado(object sender, EventArgs e)
        {
            try
            {
                int idVerificar = 0;
                Involucrado involucrado = new Involucrado();
                involucrado.Nombre = this.TextNombre.Text;
                involucrado.Apellido = this.TextApellido.Text;
                involucrado.Correo = this.TextCorreo.Text;
                involucrado.Telefono = this.TextTelefono.Text;
                involucrado.Nombre = this.TextNombre.Text + " " + this.TextApellido.Text;
                // Verificamos que selecciono un rol en el comboBox
                if (!this.ComboRol.SelectedItem.Text.Equals("-----------------Seleccione------------------"))
                {
                    String nombreRol = (String)this.ComboRol.SelectedItem.Text;
                    involucrado.Rol.Id = BuscarSelecionRol(nombreRol);
                    involucrado.Rol.Nombre = nombreRol;
                }
                // se invoca al metodo AgregarInvolucrado pasando por parametro el objeto del tipo "Involucrado"
                idVerificar = involucrado.AgregarInvolucrado(involucrado);
                if (idVerificar == 0)
                {
                    this.LimpiarAtributos();
                    Mensaje(0,"");
                }
                else
                {
                    if (idVerificar > 0 )
                    {
                        this.LimpiarAtributos();
                        Mensaje(1,"");
                    }
                }
            }
            catch (Exception error)
            {
                Mensaje(0, error.Message);
            } 
        }

        // Buscar el rol seleccionado
        public int BuscarSelecionRol(String nombreRol)
        {
            int idRol = 0;
            foreach (Rol roles in listaRol)
            {
                if (roles.Nombre == nombreRol)
                    idRol = roles.Id;
            }

            return idRol;
        }
        // Imprimir los mensajes, sea que la operacion falle o sea existosa
        public void Mensaje(int valorMensaje, String mensaje)
        {
            if (valorMensaje == 1)
            {
                MensajeDeTransaccion.Text = "El Involucrado se agrego con exito";

                MensajeDeTransaccion.Visible = true;

            }
            else
            {
                if (valorMensaje == 0)
                {
                    MensajeDeTransaccion.Text = "Operacion Fallida: " + mensaje;

                    MensajeDeTransaccion.Visible = true;
                }
            }
        }
        // Limpiamos cada Atributos
        public void LimpiarAtributos()
        {
            
            this.TextNombre.Text = "";
            this.TextApellido.Text = "";
            this.TextCorreo.Text = "";
            this.TextTelefono.Text = "";
            for (int i = 1; i <= ComboRol.Items.Count - 1; i++)
            {
                ComboRol.Items.RemoveAt(i);
            }
           
        }
    }
}